package Algorithm.Lambda;

import java.util.Arrays;
import java.util.Comparator;

/**
 * ClassName:LambdaText003
 * Package:Algorithm.Lambda
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/2/4-19:14
 * @Version:v1.0
 */
public class LambdaText003 {
    /*
     * Lambda表达式省略规则
     * 1.参数类型可以省略不写
     * 2.如果只有一个参数,参数类型可以省略,同时()也可以省略
     * 3.如果Lambda表达式的方法体只有一行,大括号,分号,return可以省略不写,需要同时省略
     * */
    public static void main(String[] args) {
        Integer[] arr = {2, 3, 5, 1, 6, 8, 7, 9};
        Arrays.sort(arr, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2 - o1;
            }
        });
        System.out.println(Arrays.toString(arr));



        //Lambda表达式的完整格式
        Arrays.sort(arr, (
                Integer o1, Integer
                o2) ->

        {
            return o2 - o1;

        });
        System.out.println(Arrays.toString(arr));



        //Lambda省略写法
        Arrays.sort(arr, (o1, o2) ->o2 - o1);
        System.out.println(Arrays.toString(arr));
    }
}
